import java.util.*;
public class Solution {
    public int minNumberInRotateArray(int [] array) {
        if(array.length==0){
            return 0;
        }
        int leftIdx=0;
        int rightIdx=array.length-1;
        //当前后指针相等时就是最小值下标
        while(leftIdx<rightIdx){
            int midIdx=(leftIdx+rightIdx)/2;
            if(array[midIdx]>array[rightIdx]){
                //最小值一定在右边
                leftIdx=midIdx+1;
            }else if(array[midIdx]<array[rightIdx]){
                //最小值一定在左边
                rightIdx=midIdx;
            }else if(array[midIdx]==array[rightIdx]){
                //不知道最小值在哪边一个一个试
                rightIdx=rightIdx-1;
            }
        }
        return array[leftIdx];
    }
}
